昨天認識了 API 與 JSON 的概念,今天主要是動手實際「呼叫 API」,把伺服器上的資料抓回來,並印出來看看。
在我們開始呼叫 API 之前,先簡單了解一下,呼叫 API 到底是什麼意思。
電腦世界裡
接下來會開始呼叫 API。
第 1 步:建立程式檔
New-Item main.py -ItemType File
這是指在資料夾裡新建一個 Python 檔。
第 2 步:呼叫 API
import requests # 幫我們發送 HTTP 請求的套件
把 requests
套件載進來。
url = "https://jsonplaceholder.typicode.com/todos/1" # 這是測試 API 的一個網址
設定要去的目標網址(API 位址)。
r = requests.get(url, timeout=10) # 發送 GET 請求
timeout=10
表示最久等 10 秒;超過就當作失敗,避免卡住。r
。r.raise_for_status() # 確保真的成功(不是 404/500)。失敗就丟錯誤,方便知道問題。
檢查回應的狀態碼是不是 200 系列(成功)。
data = r.json()
把伺服器回的 JSON 內容,轉成 Python 會用的型態。
print("✅ API 呼叫成功!")
print(data)
把剛才轉好的 data 直接印出來,確認它長什麼樣。
第 3 步:執行
python main.py
看到的結果
✅ API 呼叫成功!
{'userId': 1, 'id': 1, 'title': 'delectus aut autem', 'completed': False}
第 4 步:漂亮列印和取欄位(讓 JSON 更好看,並取出想要的欄位)
import json
json:用來處理/漂亮輸出 JSON 格式的資料
print("== 漂亮列印 ==")
print(json.dumps(data, indent=2, ensure_ascii=False))
先印一行標題提示。
用 json.dumps(...)
把 data
轉成「排版漂亮」的字串再印出來:
*indent=2
:每一層縮排 2 空白,看起來像樹狀。
*ensure_ascii=False
:保留非 ASCII 字元(例如中文)不要轉成 \uXXXX
。
print("\n== 指定欄位 ==") #\n 代表換行;印出第二段標題
print("任務標題:", data["title"]) #從字典 data 取出 title 欄位並印出
print("是否完成:", "✅" if data["completed"] else "❌")
輸出的結果會更清楚:
== 漂亮列印 ==
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
== 指定欄位 ==
任務標題: delectus aut autem
是否完成: ❌
第 5 步:存成檔案
把結果存成檔案
with open("todo1.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print("💾 已存檔 todo1.json")
完成了第一次呼叫 API:
知道怎麼用 requests.get()
送出請求
學會 .json()
把回傳結果轉成 Python 字典
練習了漂亮列印、取欄位、存檔